// component/page-container/pageContainer.js
const app = getApp()

Component({
  options: {
    multipleSlots: true // 在组件定义时的选项中启用多slot支持
  },
  /**
   * 组件的属性列表
   */
  properties: {
    isHome: {
      type: Boolean,
      value: false
    },
    title: {
      type: String,
      value: '物业管理'
    }
  },

  /**
   * 组件的初始数据
   */
  data: {
    height: 0,
    // 路由栈
    routeStack: ['home'],
    currentPage: 'home'
  },
  lifetimes: {
    attached() {
      this.setData({
        width: 750,
        height: app.globalData.screenHeight,
      })
    },

  },
  observers: {
    'routeStack': function (currentRouteStack) {
      if (!currentRouteStack.length) return;
      let routeStack = this.data.routeStack;
      let currentPage = routeStack[routeStack.length - 1]
      this.setData({
        currentPage
      })
    }
  },
  /**
   * 组件的方法列表
   */
  methods: {
    navigateTo({
      detail: {
        page
      }
    }) {
      // 判断要跳转的页面是否在路由栈 是就截断数据；否 直接push
      let routeStack = this.data.routeStack;
      let findPageIndex = routeStack.findIndex(v => v == page);
      // TODO:这里应该校验一下路由是否符合预期
      if (findPageIndex == -1) {
        // 进入新页面
        routeStack.push(page)
      } else {
        // 返回历史页面
        routeStack.splice(findPageIndex + 1)
      }
      this.setData({
        routeStack
      })
    },
  }
})